2014-11-15 - 14986 - ASN Due list performance improvement #ABAPSNC #SNCProject

SPECIFICATIONS

14986.400-ASN Due list performance improvement


Purpose


Assign appropriate factory calendars to routes.

Admin Info


Purpose
ASN Due list performance improvement
Requested By
Rahul Attarde
Spec Created By
Venkat Kondapally
Spec Created Date
11/15/2014
Spec QA by
Venkat Kondapally
Objects
ZNEC_IM_DUELST_CHNG
Document Status
Complete


Estimates



Sl.No
Activity
Estimation in Hours
1
Research

2
Documentation

3
Development/ Config

4
Unit test in DEV

5
Unit test in QUA

6
Other activity


TOTAL


References


Prior Tickets

[Provide links of prior associated Spec / Break Fix BOSS document(s)]



Documents

[Attach any document(s) received for the requirement(s)]



Spec Changes


[List the changes made to program after the approval of the original requirement along with the Date on which the change request was received and the name of the initiator]

Sl.
Change Details
Requested By
Requested On
Notes if any

























Functional Requirement


Purpose/WHY:

[Explain the purpose of the project and the reason why this requirement has come]
SAP has recommended to make changes to the BADI which was implemented during go-live to improve the performance of ASN Due List.

The Following recommendations were made by SAP.

What I can offer you here regarding this topic is some pieces of advice, as the BAdI implementation seems to suffer from three performance bottlenecks, and two of them looks pretty straightforward (with SNC knowledge) :
1) at line 158 CALL METHOD /scmb/cl_odm=>get3_by_id : before this call the param ls_ctrl2-extflg should be set to /scmb/cl_odm=>gc_true and the value 'OEIT' should be inserted into table ls_ctrl2-orc_tab. This would ensure that a lot of DB tables won’t be accessed at all.
2) at line 128 there is an expensive delete statement within a loop. I think if you go for another approach instead of it, it could be executed much faster: you can create a small table lt_duelist_one_item containing the lines of ct_duelist that belong to the same PO item at the start of the loop. When the PO item is evaluated for draft ASNs, then instead of not deleting data from ct_duelist, you can append the lines of lt_duelist_one_item to another local table lt_duelist under same conditions. then after the loop is completed, ct_duelist can be overwritten with lt_duelist. This would make the code a bit more complex, but should result in another performance gain.

In Scope:

[List the activities to be included in scope]

Out of Scope:

[Out of scope activities]

Solution Summary


[Discuss this section with Requester and get approval prior to beginning work]

- All the recommended changes by SAP were completed but the performance did not improve as expected. Further analysis was done on the BADI Implementation and new changes were done to eliminate repetitive process of the same Items.


Test Plan

[List test scenarios/cases to be executed here]
Test ID
Test Scenario
Expected Results







Solution Details


[Provide complete technical details for configuration or programming here]

All the recommended changes by SAP were done to the BADI but the performance did not improve as per expectations.

Further Analysis was done to the BADI Implementation by debugging and was found that each time was looped to be processed multiple times and also found that even the Items which are not needed were picked in the loop.

The Badi ZNEC_IM_DUELST_CHNG was modified to Filter umwanted Items and Unwanted loops to increase the perfrmance


Issues


[List Issues / Bugs identified in configuration or development]